package com.subfg.common.entity.call.request;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "系统自定义支付时需携带的数据, 便于请求三方支付接口")
@JsonInclude(value=JsonInclude.Include.NON_NULL)
public class RequestPayModel<T> implements Serializable {
    @ApiModelProperty(value = "系统订单号[ 合单 订单号]")
    private String orderNo;
    @ApiModelProperty(value = "三方渠道编号")
    private String channelNo;
    @ApiModelProperty(value = "支付渠道 [1: 支付宝 2:Stripe(信用卡) 3: 微信 4: 其他]")
    private String channel;

    @ApiModelProperty(value = "支付汇率")
    private BigDecimal paymentRate;
    @ApiModelProperty(value = "支付金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "支付平台 [Web, Ios, Web PC]")
    private String payPlatform;
    @ApiModelProperty(value = "支付标题, 或描述")
    private String describe;

    @ApiModelProperty(value = "附加数据")
    private T attach;

    @ApiModelProperty(value = "自定义异步回调地址 Webhook")
    private String webhook;
    @ApiModelProperty(value = "实际金额")
    private BigDecimal actualAmount;
    @ApiModelProperty(value = "请求时间")
    private Long requestTime;
    @ApiModelProperty(value = "接收三方回调时间, 以本地接收回调为准")
    private Long callBackTime;

}
